package com.bot.nft.module.dc.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bot.nft.module.dc.domain.DcSellOrderInfo;
import com.bot.nft.module.dc.domain.vo.DcSellOrderInfoVo;
import com.bot.nft.module.dc.domain.vo.SellGetInfoVo;
import com.bot.nft.module.dc.domain.vo.SellOrdPayLogVo;
import com.bot.nft.module.dc.domain.vo.SellPoInfoVo;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author RenXiaoZheng
 * @since 2024-01-24
 */
public interface IDcSellOrderInfoService {
    /**
     * 查询寄售藏品订单功能
     *
     * @param status   订单状态
     * @param pageNo   页码
     * @param pageSize 条数
     * @param phone    手机号
     * @return 分页信息
     */
    Page<SellPoInfoVo> querySellPo(Integer status, String phone, Integer pageNo, Integer pageSize);

    /**
     * 查看寄售藏品订单
     *
     * @param id 订单信息标识
     * @return 寄售订单信息
     */
    SellGetInfoVo getSellPo(String id);

    /**
     * 查看支付信息
     */
    List<SellOrdPayLogVo> getSellOrder(String id);

    /**
     * 二级市场藏品下单
     *
     * @param sellId 寄售藏品标识
     * @param mbId   购买人标识
     * @return DcOrderInfoBo 藏品订单信息，包含藏品名称、藏品单价、订单金额等属性
     */
    String placeOrder(String sellId, String mbId);

    /**
     * 支付寄售藏品订单
     *
     * @param orderId 订单Id
     * @param mbId    会员Id
     * @return 支付成功失败
     */
    Boolean payOrder(String orderId, String mbId);

    /**
     * 取消寄售藏品订单
     *
     * @param orderId 订单标识
     * @return 成功/失败
     */
    Boolean cancelPayOrder(String orderId);

    /**
     * 根据订单标识和会员标识查看藏品订单
     *
     * @param orderId 订单标识
     * @return 订单信息vo
     */
    DcSellOrderInfoVo viewOrder(String orderId);

    /**
     * 查看寄售订单信息集合
     *
     * @return
     */
    List<DcSellOrderInfo> selectSellOrder();





}
